草庐IT

Android PlusOneButton 不初始化

全部标签

c++ - 带有类参数的 std::thread 初始化导致类对象被多次复制

看起来,如果创建一个类的对象,并将其传递给std::thread初始化构造函数,那么类对象的构造和销毁总共有4次之多。我的问题是:你能一步步解释这个程序的输出吗?为什么这个类在这个过程中被构造、复制构造和销毁了这么多次?示例程序:#include#include#include#includeclasssampleClass{public:intx=rand()%100;sampleClass(){std::cout输出是:constructorcalled,x=92copyconstructorcalled,x=36copyconstructorcalled,x=61destruct

c++ - 列表初始化的缩小转换是错误还是只是警告?

这个问题在这里已经有了答案:Whydoesn'tnarrowingconversionusedwithcurly-brace-delimitedinitializercauseanerror?(2个答案)关闭7年前。目前正在自学C++primer5thedition。正文说:Whenusedwithvariablesofbuilt-intype,thisformofinitializationhasoneimportantproperty:Thecompilerwillnotletuslistinitializevariablesofbuilt-intypeiftheinitializ

c++ - 如何在 OpenMP threadprivate 指令中使用对象的直接初始化?

关于this问题其中一个答案引用了OpenMP标准的以下部分:Athreadprivatevariablewithclasstypemusthave:anaccessible,unambiguousdefaultconstructorincaseofdefaultinitializationwithoutagiveninitializer;anaccessible,unambiguousconstructoracceptingthegivenargumentincaseofdirectinitialization;anaccessible,unambiguouscopyconstruc

c++ - 如何使用没有复制构造函数的给定类初始化元组

我有一个要求,需要按如下方式初始化元组。如何创建包含A类对象的元组?#include#includeusingnamespacestd;classA{inta;public:A(constA&)=delete;A(inta):a(a){}};std::tuple&createTuple(A&&a){returnstd::make_tuple(std::forward(a));}intmain(){std::cout(createTuple(std::forward(A(1))));}我不能以任何方式修改A类。 最佳答案 像这样:st

c++ - Uncrustify:初始化列表:以逗号开头

我想通过Uncrustify自动归档以下代码结构:Class(intaArg1,intaArg2,intaArg3):BaseClass(aArg1),iMember1(aArg1),iMember2(aArg2){}我试过Uncrustify版本:0.63:pos_constr_comma=lead_force但它不起作用。我应该设置什么来获得上面的代码? 最佳答案 刚遇到同样的问题。尝试添加这个:nl_constr_init_args=add对我有用。 关于c++-Uncrustif

c++ - 获取默认初始化(非值/零初始化)的 POD 作为右值

#includestructA{intx;};voidfoo(Aa){std::cout是否可以将A类型的右值传递给foo()而无需对其进行值初始化?我们必须使用值初始化还是左值?您可能会问,如果“成本”不超过10纳秒,那么避免进行值初始化有什么意义呢?像这样的情况怎么样:我们正在寻找遗留应用程序中由valgrind的未初始化内存访问引起的错误,并且零不被视为该应用程序的有效值。值初始化将阻止valgrind发现未初始化内存访问的位置。您可能会说打印未初始化的值是一个UB,但我的“真实”用例不限于打印。没有它,我的问题应该仍然有效。 最佳答案

c++ - 在编译时初始化 c++ std::bitset

我正在尝试初始化std::bitset在编译时使用它的一些索引,假设50-75和200-225设置为1。基于http://en.cppreference.com/w/cpp/utility/bitset/bitset看起来我的2个选项是:constexprbitset();constexprbitset(unsignedlonglongval);考虑到第二个构造函数不适用于大索引,有人可以阐明我将如何初始化我的位集吗? 最佳答案 Bitsetconstructorconstexprbitset(unsignedlonglongval

c++ - 在类声明中初始化 const 成员变量时 Debug模式下的异常

#include#include#include#includeclassX{public:X(){std::cout>ValidatorType;constValidatorTypem_validators=ValidatorType{{"some-string",[](){//validationcodestd::cout以上代码使用Xcode7.2.1和Clang7.0.2在OSX上以调试和Release模式成功构建和运行。它还使用VisualStudioExpress2013forWindowsDesktop在Windows7上以Release模式成功构建和运行。但是,在Win

c++ - 成员结构位域元素的初始化列表初始化导致 IAR ARM 中的错误

我在IAR中有以下类结构:classA{public:A(){}virtual~A(){};virtualvoidload(){};};classC{public:C(){//Cdoesotherstuff,notrelevant}};classD;classB:publicA{public:B():invert(false){};virtual~B(){};voidload(){//Irrelevantstuffdonehere}private:Cmember_c;std::vectorvector_of_d;struct{boolvar_1:1;boolvar_2:1;boolva

c++ - 将列表初始化对插入 std::map

我正在尝试将一个只能移动的类型插入到map中。我有以下代码:#includeclassMoveable{public:Moveable()=default;Moveable(constMoveable&)=delete;Moveable(Moveable&&)=default;Moveable&operator=(constMoveable&)=delete;Moveable&operator=(Moveable&&)=default;};intmain(){std::mapmy_map;Moveablemy_moveable_1,my_moveable_2,my_moveable_3